home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / DEF / Utilities / Milliseconds / msec < prev   
Text File  |  1998-10-23  |  1KB  |  29 lines

  1. msec list-of-values
  2.  
  3. This enables to use milliseconds to determine the rhythms or tonality zones, which is suitable in experimental music.
  4.  
  5. To match the milliseconds to the sequencer tempo adjustment you have to define first the time chunk that matches a certain tempo, for example 1/4 note equals 120 beats per minute.
  6.  
  7. (init-msec '1/4 120)
  8.  
  9. Now you can define 3 zones lasting 1000 ms, 500 ms and 333 ms.
  10.  
  11. (def-zone
  12.    synth (msec '(1000 500 333))
  13. )
  14.  
  15. This example shows how to define lengths in the range of 40 to 80 ms calculated from sin wave.
  16.  
  17. (def-length
  18.    synth (msec (vector-round 40 80 (gen-sin 1 0.3 64)))
  19. )
  20.  
  21. msec builds a list of ratios:
  22.  
  23. (3/100 31/1000 4/125 33/1000 17/500 69/2000 71/2000 73/2000 
  24. 37/1000 3/80 77/2000 39/1000 39/1000 79/2000 1/25 1/25 1/25 
  25. 1/25 1/25 ...)
  26.  
  27. These ratios are automatically length-corrected to match the sequencer tick values. Minor coercion errors will happen, but in a long run milliseconds are matched as closely as possible. More on auto-correction  see get-tick.
  28.  
  29. Note: def-tempo will change the timings. Don't use it if you want to achieve the maximum precision.